当下汽车产业发展迅速,电子系统趋向集成化、智能化、网联化,众多功能依赖众多 ECU 协同,其开发质量影响系统运行。但汽车电子系统复杂度剧增,整合不同供应商软硬件、实现功能模块通信交互成难题,传统开发方式力不从心,如何在众多供应商的软硬件中实现高效整合,成了汽车制造商和供应商共同面临的难题。
基于此背景与需求,很有必要深入探讨 AUTOSAR 方法论,明晰其在实际项目开发流程中的作用,以及其如何指导我们开发高质量的汽车电子系统?帮助大家明白AUTOSAR架构下,如何去开发一个ECU产品。
要理解AUTOSAR方法论,首先要明确“标准”和“方法论”的区别:
AUTOSAR标准:就像汽车电子系统开发的“规则书”,为开发软件模块、定义接口、文件格式等提供了明确的规范。
AUTOSAR方法论:则是开发的“操作手册”,告诉开发者如何一步步按照AUTOSAR标准完成整个开发流程。
简单来说,AUTOSAR标准回答了“开发什么”的问题,而AUTOSAR方法论解决了“怎么开发”的问题。AUTOSAR方法论其实就是AUTOSAR为符合该标准的汽车电子软件系统开发过程定义的一套通用技术方法。
AUTOSAR方法论是基于现有的软件基础内容,总结出的适合车辆软件开发的软件总体开发流程,并且体现了AUTOSAR整体的层次,从底层的驱动到上层的应用设计,都对应不同的开发过程。除此之外,AUTOSAR还包括了标定、存储映射和数据保护等方法,以及各步骤之间的衔接方式。
方法论,可以说是AUTOSAR的灵魂,就像一道菜的配料和方法,如果没有这个方法,那么食材仅仅是食材,而不是一道美味的菜肴。既然说方法论是AUTOSAR的灵魂,那么什么能承载这个灵魂,没有载体的灵魂就是孤魂野鬼啊。ARXML就能担此重任。其实,ARXML本质就是XML格式的文本,只是被AUTOSAR组织将其披上一件美丽的外衣。后边我们会单独出一期文章来介绍一下ARXML。
汽车OEM作为整车系统功能的规划和设计者,需要了解并掌握AUTOSAR提供的这套开发流程,才能主导和推进符合AUTOSAR标准的系统的开发过程。在汽车电子系统开发过程中,不同供应商和原始设备制造商(OEM)之间的信息交互如图所示。
OEM与TIER1之间、TIER1内部AutoSAR底层和应用层以及MCAL与BSW之间存在文件交互需求,因使用Word格式交换信息存在编辑与阅读均费时费力的问题,AutoSAR规定了基于.xml的.arxml文件格式。其优势在于可通过DaVinci等软件自动生成相关内容,例如整车厂设计好整车CAN通信矩阵后能直接导出.arxml发给TIER1,TIER1用DaVinci软件打开就能清晰查看所有内容,且相关模块(如CAN、CAN IF、PUDR等)能自动配置好。尽管现在不少厂商仍沿用DBC文件,但AutoSAR还是推荐使用.arxml文件。
AUTOSAR设计和开发流程分为三个阶段:系统配置阶段、ECU设计与配置阶段、代码生成阶段。整体流程如图所示:
第一阶段,定义系统配置文件,这是系统设计者或架构师的任务。主要目的是生成系统配置描述文件,首先是编写系统配置输入文件,包括软件组件描述、 ECU资源描述和系统约束描述,该文件将确定需要使用的软件构件(即系统具有哪些功能)、硬件资源(ECU)以及整个系统的约束条件。基于系统配置输入描述文件,系统配置根据 ECU 资源和时序要求,将软件组件映射到对应的 ECU上,生成系统配置描述文件。系统配置描述文件包括总线映射之类的所有系统信息以及软件组件与某个 ECU 的映射关系。
该阶段根据系统配置描述文件提取出与各个 ECU 相关的系统配置描述信息,提取出来的信息生成 ECU 提取文件。ECU 配置生成器根据这个提取文件对 ECU 进行配置,例如操作系统任务调度,必要的BSW模块及其配置,运行实体到任务的分配等,从而生成ECU配置描述文件。ECU配置过程主要是对 RTE 和 BSW 的配置。在 RTE 配置阶段,需要将软件组件的运行实体映射到相应的操作系统任务;在 BSW 配置阶段,需要详细配置 BSW 层中所需要用到的模块,一般有操作系统、通信服务、ECU 抽象层和 MCAL 等,并将结果保存在 ECU 配置描述文件中。
该阶段的主要目的是生成可行执行代码,是基于ECU配置描述文件指定的配置来产生代码、编译代码,并把相关代码链接起来,最终生成 ECU 可执行代码。
在AUTOSAR中,所有的描述文件都是ARXML类型的文件。系统配置输入文件包含三部分内容:
(1)软件组件描述,定义每个涉及的软件组件的接口内容,如数据类型,端口,接口等。
(2)ECU资源描述,定义每个ECU的资源需求,如处理器、存储器、外围设备、传感器和执行器等。
(3)系统约束描述,定义总线信号,软件组件间的拓扑结构和映射关系。
AUTOSAR方法论不仅涵盖了从VFB设计到生成代码软件集成之间的所有步骤,还包括了标定、存储映射和数据保护等方法。其不仅规定了每一个步骤的行为,还规定了各步骤间的衔接方式。具体开发流程如下:
1. 构建系统约束:
搭建系统约束旨在从系统功能性角度出发,为整个系统设立相应约束条件。此阶段需明确虚拟功能总线(VFB)涵盖的各类元素,像组件、接口、模式、数据类型、软件组件以及软件composition(即多个软件组件的功能集合)等,同时要顾及软件组件约束,例如哪些组件应置于同一ECU中(鉴于使用AUTOSAR工具可同时开发多个ECU),还有系统的总线信号情况。过程中要结合系统功能架构考量,提出需求并依据系统约束展开分析,最终构建出合理且高效的系统架构。该阶段侧重设计,并无实际可见的产出成果。
2. VFB系统配置:
本阶段依据前一阶段所确定的系统约束来开展具体设计工作。在此期间,由于所有软件组件(swc)尚未明确处于哪个ECU,所以将它们集中进行配置。具体而言,要对VFB里的各个软件组件及其内部行为、接口定义、接口中的数据类型做详细设计;把总线信号的约束文件(通常为DBC格式)导入到AUTOSAR工具中;连接组件间对应的接口,并将组件接口与相应的总线信号进行连接。
其具体输出文件如下:
3. 提取相关信息至ECU:
在前两个阶段中,软件组件的所属ECU尚未确定。故而要从上述系统配置的输出文件里,提取与各ECU相关的系统配置描述信息,包含总线信息、SWC组件信息以及Composition信息等,并将这些信息整合到各个ECU对应的提取文件中。其具体输出文件为:ECU提取ARXML
4. 配置BSW:
BSW的配置可与VFB系统配置同步进行。BSW主要针对通信协议栈、存储协议栈、模式管理、ECUM、OS等方面展开配置工作。其具体输出文件为:BSW模块描述ARXML
5. ECU配置:
ECU配置主要是为该ECU补充必要的信息与数据,具体分为以下几个部分:
其具体输出文件为:RTE配置ARXML
6. RTE与BSW代码生成:
依据ECU提取ARXML以及ECU配置ARXML生成RTE代码,依照BSW模块描述ARXML生成BSW代码。
AUTOSAR 方法论详细阐述了从系统底层配置直至生成整个 ECU 可执行代码的设计流程,这在汽车电子软件平台标准化进程中是一个重大突破。构建并实施这样一个标准化平台,能够有效减少新产品研发与测试所需的时间,助力企业快速响应市场需求。
通俗来说,AUTOSAR方法论就像一个复杂的建筑工程,其中系统配置阶段相当于绘制建筑蓝图,明确整个项目的功能布局和资源分配;ECU配置阶段则是制定具体的施工计划,将设计转化为可操作的步骤;代码生成阶段则是最终的施工和交付,完成整个项目的落地。这样一套流程的优势在于模块化设计,使得每个软件模块都可以独立开发和重复利用;标准化规范确保了不同厂商的产品能够无缝集成;同时通过减少重复劳动和提高开发效率,有效降低了整体开发成本。
市场上已有众多符合 AUTOSAR 标准的产品提供全面解决方案,但汽车行业弃用传统软件开发平台需较长时间。可依需求搭混合平台平稳升级,关键是深入理解 AUTOSAR 理念,因其影响深远。